package com.tanklab.signature.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="文件对象", description="文件信息表")
@TableName("file")
public class File {

    @TableId(value = "id_file", type = IdType.AUTO)
    private Long idFile;

    // 文件名称
    @TableField("name_file")
    private String nameFile;

    // 文件存储路径
    @TableField("file_path")
    private String filePath;

    // 文件类型
    @TableField("file_type")
    private String fileType;

    // 文件描述
    @TableField("file_description")
    private String fileDescription;

    // 创建时间 (文件上传时间)
    @TableField("created_time")
    private String createdTime;

    // 文件内容哈希 (只对文件内容本身计算)
    @TableField("file_content_hash")
    private String fileContentHash;

    // 文件内容交易ID
    @TableField("content_tx_id")
    private String contentTxId;

    // 文件元信息哈希 (对上述不变信息计算)
    @TableField("file_info_hash")
    private String fileInfoHash;

    // 文件元信息交易ID
    @TableField("info_tx_id")
    private String infoTxId;

    // 上传者openid (申请者)
    @TableField("uploader_openid")
    private String uploaderOpenid;

    // 关联的申请ID (可为null，表示未提交申请)
    @TableField("request_id")
    private Long requestId;
}